Currently there is an enormous amount of data available to mobile devices (mobiles or clients), e.g., cellular telephones, smart telephones, tablet computers, etc. In essence, the entirety of information stored publicly on the world wide web (WWW) is available to users of clients. This availability has enabled a plethora of new applications which make use of untethered access to the information.
In particular, clients can now participate in “cloud computing” applications in which a majority of the computing and data storage functionality for the clients is on a server, which has an Internet connection and only pertinent information or computational results are sent to the clients. This generally, has the effect of minimizing the storage and computation that occurs at the clients.
A concrete example application is vehicle navigation. It is assumed that a vehicle includes a mobile device, either integrated into the vehicle, or carried by an occupant of the vehicle.
Conventionally, a Global Positioning System (GPS) can be used. In this case, the client requires storage of maps for areas in which the vehicle travels. Then, computation of routes can be performed locally by the client. The client can obtain the maps from the server as needed. Alternatively, the server can compute the routes to reduce storage and computation at the client. Of course, this can requires the addition of communication functionality for the GPS so that users of the application can request routes to their destinations, receive maps and results of route computations.
As a further benefit, a navigation application running on a server can make efficient use of side information to improve route computations. For example, the server can real-time traffic reports and road work schedules to optimize the routing computations. The side information can also be made directly available to the clients. However, this would consume wireless network resources.
Thus, it seems reasonable to restrict the amount of information transmitted directly to clients to minimize the communication load in network.
In general, it is beneficial to ensure that any “cloud based” application minimize the amount of communication that occurs between the server and the clients. This reduces the cost incurred for delivering services based on an amount of “air time” that is used. In addition, it allows the support of more clients for a fixed amount of air time.
To do this efficiently, a “coverage map” would be advantageous. The coverage map would indicate network characteristics and client locations.
A common problem is obtaining accurate coverage map information. Firstly, knowledge of the coverage map, if it is known at all, will typically reside with the operator of the network. This information is normally not released as it contains sensitive information.